package asignacionDeRevisores;

import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import org.junit.*;

import asignacionDeRevisores.AsignacionPorAlta;
import sistema.Usuario;


public class AsignacionPorAltaTestCaseMOCK {
	// Seccion 1 Extras
		private AsignacionPorAlta asignador = new AsignacionPorAlta(); 
	// Seccion 3 Lista de usuarios
		private List<Usuario> ordenados = new ArrayList<Usuario>();
		private List<Usuario> desordenados = new ArrayList<Usuario>();
		// Seccion 4 Calendar
				private Calendar ahora = Calendar.getInstance();
				private Calendar manana = Calendar.getInstance();
				private Calendar ayer = Calendar.getInstance();
				private Calendar antiguo = Calendar.getInstance();
				
		private Usuario mUsuarioAntiguo = mock(Usuario.class);
		private Usuario mUsuarioViejo = mock(Usuario.class);
		private Usuario mUsuarioActual = mock(Usuario.class);
		private Usuario mUsuarioFuturo = mock(Usuario.class);
		
		
	@Before
		public void setUp(){
		// Seccion 4 Calendar
		antiguo.set(1009, Calendar.JUNE, 01);
		ayer.set(2010, Calendar.JUNE, 01);
		ahora.set(2011, Calendar.JUNE, 01);
		manana.set(2012, Calendar.JUNE, 01);
		// Sección 2 Usuarios
		when(mUsuarioAntiguo.getFecha()).thenReturn(antiguo);
		when(mUsuarioViejo.getFecha()).thenReturn(ayer);
		when(mUsuarioActual.getFecha()).thenReturn(ahora);
		when(mUsuarioFuturo.getFecha()).thenReturn(manana);
		// Sección 3	Lista de usuarios
		ordenados.add(mUsuarioAntiguo);
		ordenados.add(mUsuarioViejo);
		ordenados.add(mUsuarioActual);
		ordenados.add(mUsuarioFuturo);
		desordenados.add(mUsuarioActual);
		desordenados.add(mUsuarioFuturo);
		desordenados.add(mUsuarioAntiguo);
		desordenados.add(mUsuarioViejo);
		// FIN DEL testSETUP
		// FIN DEL testSETUP
		// FIN DEL testSETUP
		}
	@Test
	public void testAAOrdenarRevisoresPorFecha(){
		//assertEquals(desordenados.size(), 4);
		assertTrue((asignador.ordenarRevisoresPorFechaDeAlta(this.desordenados)).containsAll(ordenados));
	}
	
	
	
	/**
	public void testAAAsignarRevisores(){
		
		 * _OrdenarRevisoresPorFecha() fue testeado arriba.
		 * _obtenerListaDePapers(cfp) fue testeado en la superclaseTest.
		 * _asignarPapersARevisores(listaRevisores,papers) fue testeado en el test de la superclase.
		 *  
	
	} */

}
